package com.winhxd.b2c.product.dao;

import com.winhxd.b2c.common.domain.product.condition.ProductPriceProgramAddDetailCondition;
import com.winhxd.b2c.common.domain.product.model.ProductPriceProgram;
import com.winhxd.b2c.common.domain.product.vo.ProductPriceProgramDetailVO;

import java.util.List;
/**
 * 商品价格方案
 * @author luosixiang
 * @date 11:19 2019/1/18
 * @param
 * @return
 **/
public interface ProductPriceProgramMapper {

    /**
     * 删除方法
     * @author luosixiang
     * @date 11:11 2019/1/18
     * @param id 主键
     * @return int
     **/
    int deleteByPrimaryKey(Long id);

    /**
     * 新增
     * @author luosixiang
     * @deprecated 新增
     * @date 11:11 2019/1/18
     * @param record
     * @return int
     **/
    int insert(ProductPriceProgram record);

    /**
     * 新增
     * @author luosixiang
     * @date 11:11 2019/1/18
     * @param record
     * @return int
     **/
    int insertSelective(ProductPriceProgram record);

    /**
     * 根据主键查询
     * @author luosixiang
     * @date 11:12 2019/1/18
     * @param id
     * @return com.winhxd.b2c.common.domain.product.model.ProductPriceProgram
     **/
    ProductPriceProgram selectByPrimaryKey(Long id);

    /**
     * 检查价格方案名称是否可用
     * @author luosixiang
     * @date 11:12 2019/1/18
     * @param name
     * @return java.util.List<com.winhxd.b2c.common.domain.product.model.ProductPriceProgram>
     **/

    List<ProductPriceProgram> checkPriceProgramName(String name);

    /**
     * 查询所有价格方案
     * @author luosixiang
     * @date 11:12 2019/1/18
     * @param
     * @return java.util.List<com.winhxd.b2c.common.domain.product.model.ProductPriceProgram>
     **/

    List<ProductPriceProgram> selectAll();

    /**
     * 根据条件查询价格方案
     * @author luosixiang
     * @date 11:12 2019/1/18
     * @param productPriceProgram
     * @return java.util.List<com.winhxd.b2c.common.domain.product.model.ProductPriceProgram>
     **/

    List<ProductPriceProgram> selectByModel(ProductPriceProgram productPriceProgram);

    /**
     * 修改价格方案
     * @author luosixiang
     * @date 11:13 2019/1/18
     * @param record
     * @return int
     **/

    int updateByPrimaryKeySelective(ProductPriceProgram record);

    /**
     * 修改价格方案
     * @author luosixiang
     * @date 11:13 2019/1/18
     * @param record
     * @return int
     **/

    int updateByPrimaryKey(ProductPriceProgram record);

    /**
     * 查询价格方案详情
     * @param condition
     * @return List<ProductPriceProgramDetailVO>
     */
    List<ProductPriceProgramDetailVO> selectProductPriceProgramDetail(ProductPriceProgramAddDetailCondition condition);
}